Many computing activities are moving toward cloud computing environments such as computer clusters. A computer cluster, as used herein, includes a set of real and/or virtual machines that are commonly managed by a controller entity to perform actions such as storage and computations. The controller entity, which is referred to herein as a fabric controller, is a computing module that allocates resources in the computer cluster. The fabric controller may be hosted on a single machine or spread over multiple machines, and it may be inside and/or outside the computer cluster. The fabric controller of the computer cluster can include a network of interconnected nodes, where each node can be hosted on one or more real and/or virtual machines.
The fabric controller can interact with compute instances, which can perform computations, as requested by the fabric controller, and the requests of the fabric controller can depend on input provided by customers requesting the use of computer cluster resources. A compute instance may be, for example, a real machine, or a virtual machine hosted on a real machine. Within a compute instance, one or more roles may be running. A role is a deployed module, such as an application, that is running within a compute instance to perform computations.